package com.koalton.steward.flow.dao;

import com.koalton.steward.flow.model.Flow;
import com.koalton.steward.flow.model.ItemType;
import org.springframework.stereotype.Repository;

import java.util.Date;
import java.util.List;

/**
 * Created by koalton on 2017/7/11.
 */
@Repository
public interface FlowDao {

    /**
     * 插入一条流水
     * @param flow
     */
    public void insert(Flow flow);

    /**
     * 批量插入流水
     * @param flows
     */
    public void insert(List<Flow> flows);

    /**
     * 通过流水ID查询
     * @param flowID 流水ID
     * @return 返回消费流水，若查询不到则返回NULL
     */
    public Flow query(Long flowID);

    /**
     * 通过条款类型查询
     * @param itemType 条款类型
     * @return 返回的流水集合
     */
    public List<Flow> query(ItemType itemType);

    /**
     * 通过条款类型+发生日期范围查询
     * @param itemType 条款类型
     * @param happendDateStart 发生日期起始日期
     * @param happendDateEnd 发生日期终止日期
     * @return 返回查询流水集合
     */
    public List<Flow> query(ItemType itemType, Date happendDateStart,Date happendDateEnd);


}
